# -*- coding: utf-8 -*-

 ###############################################
 ##                                             ##
 ##   Empresa Básica                             ##
 ##                                              ##
 ##                                              ##
 ##                                              ##
 ##   por Críptidos Digitales                    ##
 ##   GPL (c)2008                                ##
  ##                                             ##
    ###############################################

# print (0), "mantenimiento       begin"

from PyQt4 import QtCore, QtGui

import mantenimiento_ui

from personas.controlador import Controlador as ControladorPersonas

# from productos.controlador import Controlador as ControladorProductos
from productos import Controlador as ControladorProductos

from equipos import manejador as manejadorEquipos, igu as igEquipos

# print (0), "mantenimiento         definitions"


class Forma(QtGui.QFrame):

    @property
    def app(self):
        return self.__app

    @property
    def content(self):
        return self.__content

    @property
    def owner(self):
        return self.__owner

    def __init__(self, *args, **kwds):
        if kwds.has_key('app'):
            self.__app = kwds.pop('app')
        else:
            self.__app = None

        if kwds.has_key('content'):
            self.__content = kwds.pop('content')
        else:
            self.__content = None

        if kwds.has_key('owner'):
            self.__owner = kwds.pop('owner')
        else:
            self.__owner = None

        QtGui.QFrame.__init__(self, *args)

        self.ui = mantenimiento_ui.Ui_Form()
        self.ui.setupUi(self)

        self.ui.title.setText(u"MANTENIMIENTO DE DATOS")

        font = QtGui.QFont()
        font.setBold(True)
        font.setPointSize(9*self.app.fontZoom)

        self.ui.tabWidget.setFont(font)
        self.ui.tabWidget.clear()

        self.modules = {}

        ## CLIENTES
        self.modules['clientes'] = ControladorPersonas(self, tipo=u'clientes', app=self.app, parent=self, eventRouter=self.owner)

        ## EMPLEADOS
        self.modules['empleados'] = ControladorPersonas(self, tipo=u'empleados', app=self.app, parent=self, eventRouter=self.owner)

        ## EQUIPOS
        if self.app.distribution == self.app.TALLER:
            self.ui.equipos = igEquipos.Forma(self, owner=self.owner)
            self.ui.equipos.ui.outerSplitter.setStyleSheet("QSplitter::handle{background-color:#FFFF00;}")
            self.ui.tabWidget.addTab(self.ui.equipos, u"&Equipos")
            self.connect(self.ui.equipos, QtCore.SIGNAL("equiposChanged()"), self.equiposChanged)
            self.connect(self.ui.equipos, QtCore.SIGNAL("equiposChangedBroadcast()"), self.equiposChangedBroadcast)

        ## PRODUCTOS
        self.modules['productos'] = ControladorProductos(self, app=self.app, parent=self, eventRouter=self.owner)

        ## PROVEEDORES
        self.modules['proveedores'] = ControladorPersonas(self, tipo=u'proveedores', app=self.app, parent=self, eventRouter=self.owner)

        self.connect(self.owner, QtCore.SIGNAL('lugaresChangedBroadcast()'), self.lugaresChangedBroadcast)
        self.connect(self.owner, QtCore.SIGNAL('capturaClasificacionObligatoriaChangedBroadcast'), self.capturaClasificacionObligatoriaChangedBroadcast)
        self.connect(self.owner, QtCore.SIGNAL('capturaActualPermitidaChangedBroadcast'), self.capturaActualPermitidaChangedBroadcast)
        self.connect(self.owner, QtCore.SIGNAL('capturaLineaToggledBroadcast()'), self.capturaLineaToggledBroadcast)
        # self.connect(self.owner, QtCore.SIGNAL('tipoProductoDefaultChangedBroadcast'), self.tipoProductoDefaultChangedBroadcast)
        self.connect(self.owner, QtCore.SIGNAL('ventasChangedBroadcast()'), self.ventasChangedBroadcast)

        # print self.eventRouter
        self.connect(self.owner, QtCore.SIGNAL('addProduct()'), self.add)


    def add(self):
        print 'here too'


    def capturaActualPermitidaChangedBroadcast(self): # print "mantenimiento.Forma.capturaActualPermitidaChangedBroadcast()"
        self.emit(QtCore.SIGNAL('capturaActualPermitidaChangedBroadcast'))

    def capturaClasificacionObligatoriaChangedBroadcast(self): # print "mantenimiento.Forma.capturaClasificacionObligatoriaChangedBroadcast()"
        self.emit(QtCore.SIGNAL('capturaClasificacionObligatoriaChangedBroadcast'))

    def capturaLineaToggledBroadcast(self):
        self.emit(QtCore.SIGNAL('capturaLineaToggledBroadcast()'))

    def clasificacionesChanged(self):
        self.emit(QtCore.SIGNAL("clasificacionesChanged()"))

    def equiposChanged(self):               # print "mantenimiento.Forma.equiposChanged()"
        self.emit(QtCore.SIGNAL("equiposChanged()"))

    def equiposChangedBroadcast(self):
        self.emit(QtCore.SIGNAL('equiposChangedBroadcast()'))

    def lugaresChanged(self):               # print "mantenimiento.Forma.lugaresChanged()"
        self.emit(QtCore.SIGNAL('lugaresChanged()'))

    def lugaresChangedBroadcast(self):      # print "mantenimiento.Forma.lugaresChanged()"
        self.emit(QtCore.SIGNAL('lugaresChangedBroadcast()'))

    # def tipoProductoDefaultChangedBroadcast(self):
        # self.emit(QtCore.SIGNAL('tipoProductoDefaultChangedBroadcast'))

    def ventasChangedBroadcast(self):
        self.emit(QtCore.SIGNAL('ventasChangedBroadcast()'))

# print (0), "mantenimiento       end"